#ifndef SPRITEID_H
#define SPRITEID_H

/// Players
#define PLAYER_BLACK_MALE 0
#define PLAYER_BLACK_FEMALE 1
#define PLAYER_WHITE_MALE 2
#define PLAYER_WHITE_FEMALE 3
#define PLAYER_YELLOW_MALE 4
#define PLAYER_YELLOW_FEMALE 5

/// Player actions
#define PLAYER_ACTION_STANDING_PEACE_MODE 0
#define PLAYER_ACTION_STANDING_ATTACK_MODE 8
#define PLAYER_ACTION_WALKING_PEACE_MODE 16
#define PLAYER_ACTION_WALKING_ATTACK_MODE 24
#define PLAYER_ACTION_RUNNING 32
#define PLAYER_ACTION_BOW 40
#define PLAYER_ACTION_ATTACKING 48
#define PLAYER_ACTION_BOW_ATTACK 56
#define PLAYER_ACTION_CASTING 64
#define PLAYER_ACTION_PICKING_UP 72
#define PLAYER_ACTION_TAKING_DAMAGE 80
#define PLAYER_ACTION_DYING 88

/// Player equipment
#define PLAYER_EQUIPMENT_UNEQUIPPED -1

#define PLAYER_HAIRSTYLE_0 0
#define PLAYER_HAIRSTYLE_1 12
#define PLAYER_HAIRSTYLE_2 24
#define PLAYER_HAIRSTYLE_3 36
#define PLAYER_HAIRSTYLE_4 48
#define PLAYER_HAIRSTYLE_5 60
#define PLAYER_HAIRSTYLE_6 72
#define PLAYER_HAIRSTYLE_7 84
#define PLAYER_UNDERWEAR_COLOR_0 96
#define PLAYER_UNDERWEAR_COLOR_1 108
#define PLAYER_UNDERWEAR_COLOR_2 120
#define PLAYER_UNDERWEAR_COLOR_3 132
#define PLAYER_UNDERWEAR_COLOR_4 144
#define PLAYER_UNDERWEAR_COLOR_5 156
#define PLAYER_UNDERWEAR_COLOR_6 168
#define PLAYER_UNDERWEAR_COLOR_7 180

#define PLAYER_EQUIPMENT_HAUBERK 192
#define PLAYER_EQUIPMENT_ELVINE_HERO_HAUBERK 204
#define PLAYER_EQUIPMENT_ARESDEN_HERO_HAUBERK 216
#define PLAYER_EQUIPMENT_ELVINE_HERO_LEGGINGS 228
#define PLAYER_EQUIPMENT_ARESDEN_HERO_LEGGINGS 240
#define PLAYER_EQUIPMENT_TROUSERS 252
#define PLAYER_EQUIPMENT_SANTA_COSTUME 264
#define PLAYER_EQUIPMENT_LARGE_BOOTS 276
#define PLAYER_EQUIPMENT_SHOES 288
#define PLAYER_EQUIPMENT_ARESDEN_HERO_CAPE 300
#define PLAYER_EQUIPMENT_ELVINE_HERO_CAPE 312
#define PLAYER_EQUIPMENT_CAPE 324
#define PLAYER_EQUIPMENT_ARESDEN_HERO_MANTLE 336
#define PLAYER_EQUIPMENT_ELVINE_HERO_MANTLE 348
#define PLAYER_EQUIPMENT_MANTLE 360
#define PLAYER_EQUIPMENT_CHAIN_HOSE 372
#define PLAYER_EQUIPMENT_ELVINE_HERO_PLATE_MAIL 384
#define PLAYER_EQUIPMENT_ARESDEN_HERO_PLATE_MAIL 396
#define PLAYER_EQUIPMENT_ELVINE_HERO_ROBE 408
#define PLAYER_EQUIPMENT_ARESDEN_HERO_ROBE 420

#define PLAYER_WEAPON_DOUBLE_AXE 0
#define PLAYER_WEAPON_WAR_AXE 56
#define PLAYER_WEAPON_LIGHT_AXE 112
#define PLAYER_WEAPON_TOMAHOC 112
#define PLAYER_WEAPON_SAXON_AXE 168
#define PLAYER_WEAPON_GOLDEN_AXE 224
#define PLAYER_WEAPON_BATTLE_AXE 280
#define PLAYER_WEAPON_DARK_EXECUTIONER 336
#define PLAYER_WEAPON_LIGHTNING_BLADE 392
#define PLAYER_WEAPON_BLACK_SHADOW_SWORD 448
#define PLAYER_WEAPON_PICK_AXE 504
#define PLAYER_WEAPON_STORM_BRINGER 560

/// Creatures
#define CREATURE_ABS 0
#define CREATURE_DARK_ELF 1
#define CREATURE_CYCLOP 2
#define CREATURE_ANT 3
#define CREATURE_DEMON 4
#define CREATURE_BEHOLDER 5
#define CREATURE_BATTLE_GOLEM 6
#define CREATURE_SNAKE 7
#define CREATURE_BARBARIAN 8
#define CREATURE_BARLOG 9
#define CREATURE_BUNNY 10
#define CREATURE_CANNIBAL_PLANT 11
#define CREATURE_CAT 12
#define CREATURE_CATAPULT 13
#define CREATURE_CENTAURUS 14
#define CREATURE_CLAY_GOLEM 15
#define CREATURE_CLAW_TURTLE 16
#define CREATURE_CROP 17
#define CREATURE_DARK_SHADOW_KNIGHT 18
#define CREATURE_DETECTOR 19
#define CREATURE_DIREBOAR 20
#define CREATURE_DUMMY 21
#define CREATURE_ELF_MASTER 22
#define CREATURE_ENERGY_SHIELD 23
#define CREATURE_ETTIN 24
#define CREATURE_FROST 25
#define CREATURE_GARGOYLE 26
#define CREATURE_GODS_HAND_KNIGHT 27
#define CREATURE_GODS_HAND_KNIGHT_CAVALRY 28
#define CREATURE_GIANT_CRAYFISH 29
#define CREATURE_GIANT_FROG 30
#define CREATURE_GIANT_LIZARD 31
#define CREATURE_GIANT_PLANT 32
#define CREATURE_GRAND_MAGIC_GENERATOR 33
#define CREATURE_STONE_GOLEM 34
#define CREATURE_ARROW_GUARD_TOWER 35
#define CREATURE_CANNON_GUARD_TOWER 36
#define CREATURE_GUARD 37
#define CREATURE_HELLHOUND 38
#define CREATURE_HELLCLAW 39
#define CREATURE_ICE_GOLEM 40
#define CREATURE_LICHE 41
#define CREATURE_LIGHT_WAR_BEETLE 42
#define CREATURE_MANA_COLLECTOR 43
#define CREATURE_MANA_STONE 44
#define CREATURE_MASTER_MAGE_ORC 45
#define CREATURE_MINOTAUR 46
#define CREATURE_MOUNTAIN_GIANT 47
#define CREATURE_ORC 48
#define CREATURE_OGRE 49
#define CREATURE_NIZZIE 50
#define CREATURE_RUDOLPH 51
#define CREATURE_SCORPION 52
#define CREATURE_SKELETON 53
#define CREATURE_SLIME 54
#define CREATURE_SORCERESS 55
#define CREATURE_STALKER 56
#define CREATURE_TENTACLE 57
#define CREATURE_TIGERWORM 58
#define CREATURE_UNICORN 59
#define CREATURE_TEMPLE_KNIGHT 60
#define CREATURE_ANCIENT_TEMPLE_KNIGHT 61
#define CREATURE_TROLL 62
#define CREATURE_ZOMBIE 63
#define CREATURE_WEREWOLF 64
#define CREATURE_SCARECROW 65;

/// Creature actions
/// Figure out needed sprite as ACTION+ORIENTATION

#define CREATURE_ACTION_STAND 0
#define CREATURE_ACTION_WALKING 8
#define CREATURE_ACTION_ATTACKING 16
#define CREATURE_ACTION_TAKING_DAMAGE 24
#define CREATURE_ACTION_DYING 32

/// Orientation

#define ORIENTATION_UP 0
#define ORIENTATION_UP_RIGHT 1
#define ORIENTATION_RIGHT 2
#define ORIENTATION_RIGHT_DOWN 3
#define ORIENTATION_DOWN 4
#define ORIENTATION_DOWN_LEFT 5
#define ORIENTATION_LEFT 6
#define ORIENTATION_LEFT_UP 7

/// Mouse Cursor
#define SPRID_INTERFACE_CURSOR 0
#define INTERFACE_CURSOR_ARROW 0
#define SPRID_INTERFACE_UNK 1

/// INTERFACE2
#define SPRID_INTERFACE2 2
#define SPRID_INTERFACE2_NUM 3
//4
//5

/// SPRFONT
#define SPRID_SPRFONT 6
#define SPRID_SPRFONT2 7

/// NewDialog
#define SPRID_NEWDIALOG_LOADING 8
#define LOADING_BACKGROUND 0
#define LOADING_PROGRESSBAR 1

#define SPRID_NEWDIALOG_MAINMENU 9
#define MAINMENU_BACKGROUND 0
#define MAINMENU_LOGIN 1
#define MAINMENU_NEWACCOUNT 2
#define MAINMENU_EXIT 3

#define SPRID_NEWDIALOG_EXIT 10
#define EXIT_BACKGROUND 0
#define EXIT_MESSAGE 1

/// LoginDialog
#define SPRID_LOGINDIALOG 11
#define LOGIN_BACKGROUND 0
#define LOGIN_FRAME 2
#define LOGIN_BUTTON_CONNECT 3
#define LOGIN_BUTTON_CANCEL 4
#define SELECTSERVER_FRAME 1
#define SELECTSERVER_BUTTON_ABADDON 5
#define SELECTSERVER_BUTTON_APOCALYPSE 6

/// DialogText
#define SPRID_DIALOGTEXT_TITLES 12
#define SPRID_DIALOGTEXT_BUTTONS 13
#define INTERFACE_BUTTON_OK 0
#define INTERFACE_BUTTON_NO 2
#define INTERFACE_BUTTON_QUEST 4
#define INTERFACE_BUTTON_CONTINUE 6
#define INTERFACE_BUTTON_LOGOUT 8
#define INTERFACE_BUTTON_LEVELSET 10
#define INTERFACE_BUTTON_IAGREE 12
#define INTERFACE_BUTTON_DISAGREE 14
#define INTERFACE_BUTTON_CANCEL 16
#define INTERFACE_BUTTON_YES 18
#define INTERFACE_BUTTON_CHANGE 20
#define INTERFACE_BUTTON_CONNECT 22
#define INTERFACE_BUTTON_CREATE 24
#define INTERFACE_BUTTON_CLEAR 26
#define INTERFACE_BUTTON_RESET 28
#define INTERFACE_BUTTON_PURCHASE 30
#define INTERFACE_BUTTON_ACCEPT 32
#define INTERFACE_BUTTON_REJECT 34
#define INTERFACE_BUTTON_RESTART 36
#define INTERFACE_BUTTON_SELL 38
#define INTERFACE_BUTTON_DECLINE 40
#define INTERFACE_BUTTON_REPAIR 42
#define INTERFACE_BUTTON_PARTY 44
#define INTERFACE_BUTTON_UPGRADE 46
#define INTERFACE_BUTTON_ALCHEMY 48
#define INTERFACE_BUTTON_CHARLIST 50
#define INTERFACE_BUTTON_START 56
#define INTERFACE_BUTTON_CREATENEWCHAR 57
#define INTERFACE_BUTTON_DELCHAR 58
#define INTERFACE_BUTTON_CHANGEPASSWD 59
#define INTERFACE_BUTTON_LOGOUTBIG 60
#define INTERFACE_BUTTON_SLOTSELECTED 62
#define INTERFACE_BUTTON_MASTER 63
#define INTERFACE_BUTTON_MAGICIAN 65
#define INTERFACE_BUTTON_WARRIOR 67

/// GameDialog
#define SPRID_GAMEDIALOG_0 14
#define SPRID_GAMEDIALOG_1 15
#define SPRID_GAMEDIALOG_2 16
#define SPRID_GAMEDIALOG_3 17
#define SPRID_GAMEDIALOG_4 18
#define SPRID_GAMEDIALOG_5 19
#define SPRID_GAMEDIALOG_6 20
#define SPRID_GAMEDIALOG_7 21
#define SPRID_GAMEDIALOG_8 22
#define SPRID_GAMEDIALOG_9 23
#define SPRID_GAMEDIALOG_10 24
#define INTERFACE_DIALOG_CHANGEPASSWD 0
#define INTERFACE_DIALOG_SPELLS 1
#define INTERFACE_DIALOG_MESSAGEBOX 2
#define INTERFACE_DIALOG_MESSAGEBOX2 3
#define INTERFACE_DIALOG_CHANGESTATS 4
#define INTERFACE_BUTTON_PLUS 5
#define INTERFACE_BUTTON_MINUS 6

// item-equipM
#define SPRID_ITEM_EQUIP_M_MODELS 25
#define SPRID_ITEM_EQUIP_M_BLADES 26
#define SPRID_ITEM_EQUIP_M_BOWS 27
#define SPRID_ITEM_EQUIP_M_SHIELDS 28
#define SPRID_ITEM_EQUIP_M_SHIRTS 29
// BOOTS 30
// HAUBERKS 31
// LEGGINGS 32
// ARMORS 33
#define SPRID_ITEM_EQUIP_M_HAIR_STYLES 34
#define SPRID_ITEM_EQUIP_M_UNDERWEAR 35
// AXE 36
// WANDS 37
// CAPES 38
// HELMS 39

// item-equipW
#define SPRID_ITEM_EQUIP_W_MODELS 40
#define SPRID_ITEM_EQUIP_W_BLADES 41
#define SPRID_ITEM_EQUIP_W_BOWS 42
#define SPRID_ITEM_EQUIP_W_SHIELDS 43
#define SPRID_ITEM_EQUIP_W_SHIRTS 44
// BOOTS 45
// HAUBERKS 46
// LEGGINGS 47
// ARMORS 48
#define SPRID_ITEM_EQUIP_W_HAIR_STYLES 49
#define SPRID_ITEM_EQUIP_W_UNDERWEAR 50
// 51
// 52
// 53
// 54

#endif // SPRITEID_H
